"""
编程时经常需要检查一系列条件，并据此决定采取什么措施。
在Python中，if语句让你能够检查程序的当前状态，并采取相应的措施。
"""

print("------------1. 简单的if语句------------------")
# 一个简单的示例：简单的if语句
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
    if car == 'bmw':
        print(car.upper())
    else:
        print(car.title())

print("------------2. 条件测试,忽略大小写------------------")
# 检查是否相等时，不区分大小写，在Python中检查是否相等时区分大小写。
# 例如，两个大小写不同的值会被视为不相等：
car = 'Audi'
print(car == 'audi') # False
print(car.lower() == 'audi') # True

print("------------3. 检查是否不相等------------------")
# 要判断两个值是否不等，可结合使用惊叹号和等号（!=），其中的惊叹号表示不。
requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
    print("Hold the anchovies!")

print("------------4. 比较数字------------------")
# 条件语句中可包含各种数学比较，如小于、小于等于、大于、大于等于。
# 这些比较都能像你希望的那样工作：
age = 18
print(age == 18)
print(age != 18)
print(age > 18)
print(age < 18)
print(age >= 18)
print(age <= 18)

print("------------5. 检查多个条件------------------")
# 有时候，需要检查两个条件都为True 时才执行一些操作；
# 同时，也需要检查所有条件都不满足时才执行一些操作。
# 在这种情况下，可使用关键字and 和or 。
# 关键字and 表示只有两个条件都为True 时，才执行接下来的操作；
# 只要有一个条件不是True ，就忽略余下的测试并执行else 代码块中的代码。
age_0 = 22
age_1 = 18
print(age_0 >= 21 and age_1 >= 21)
print(age_0 >= 21 or age_1 >= 21)

print("------------6. 检查特定值是否在列表中------------------")
# 要判断特定的值是否已包含在列表中，可使用关键字in 。
# 要判断特定的值未包含在列表中，可使用关键字not in 。
requested_toppings = ['mushrooms', 'onions', 'pineapple']
print('mushrooms' in requested_toppings)
print('pepperoni' in requested_toppings)

print("------------7. 检查特定值是否不在列表中------------------")
banned_users = ['andrew', 'carolina', 'david']
user = 'marie'
if user not in banned_users:
    print(user.title() + ", you can post a response if you wish.")

print("------------8. 布尔表达式------------------")
# 布尔表达式的结果要么是True ，要么是False 。
game_active = True
can_edit = False

print("------------9. 简单if语句------------------")
# 简单的if语句
age = 19
if age >= 18:
    print("You are old enough to vote!")
    print("Have you registered to vote yet?")

print("------------10. if-else语句------------------")
# if-else语句
age = 17
if age >= 18:
    print("You are old enough to vote!")
    print("Have you registered to vote yet?")
else:
    print("Sorry, you are too young to vote.")
    print("Please register to vote as soon as you turn 18!")

print("------------11. if-elif-else结构------------------")
# if-elif-else结构
age = 12
if age < 4:
    price = 0
elif age < 18:
    price = 5
else:
    price = 10
print("Your admission cost is $" + str(price) + ".")

print("------------12. 使用多个elif代码块------------------")
age = 12
if age < 4:
    price = 0
elif age < 18:
    price = 5
elif age < 65:
    price = 10
else:
    price = 5
print("Your admission cost is $" + str(price) + ".")

print("------------13. 省略else代码块------------------")
# Python并不要求if-elif 结构后面必须有else 代码块。
# 在有些情况下，else 代码块很有用；而在其他一些情况下，使用一条elif 语句来处理特定的情形更清晰；
# 而在另一些情况下，else 代码块很有用，因为它让你能够将测试通过了的情况都考虑到了。
age = 12
if age < 4:
    price = 0
elif age < 18:
    price = 25
elif age < 65:
    price = 40
elif age >= 65:
    price = 20
print("Your admission cost is $" + str(price) + ".")
print(f"Your admission cost is ${price}.")

print("------------14. 测试多个条件------------------")
# 有时候，需要检查你关心的所有条件。
# 在这种情况下，应使用一系列不包含elif 和else 代码块的简单if 语句。
# 在这种情况下，每个测试都独立。
requested_toppings = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested_toppings:
    print("Adding mushrooms.")
if'pepperoni' in requested_toppings:
    print("Adding pepperoni.")
if'extra cheese' in requested_toppings:
    print("Adding extra cheese.")
print("\nFinished making your pizza!")